package xyz.msj.hrm.topics;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.MessageProperties;
import xyz.msj.hrm.util.ConnectionUtil;

/**
 * 消息提供者
 * * 1、获取连接
 * * 2、创建管道
 * * 3、创建交换机
 * * 4、创建队列
 * * 5、准备消息
 * * 6、发送消息
 * 通配符  topic
 *
 */


public class Sender {

    public static final String QUEUE_EXCHANGE_TOPIC = "queue_exchange_topic";


    public static void main(String[] args) throws Exception {


        //1、获取连接
        Connection connection = ConnectionUtil.getConnection();

        //2、创建管道
        Channel channel = connection.createChannel();
        //3、创建交换机 使用 通配符交换机  给交换机做持久化
        channel.exchangeDeclare(QUEUE_EXCHANGE_TOPIC, BuiltinExchangeType.TOPIC,true);
        //5、准备消息
        String message = "are you receive my message";
        //6、发送消息
//        String exchange:交换机
//        String routingKey,：队列名
//        AMQP.BasicProperties props,  其他属性
//        byte[] body 消息
        //routingKey 不写   消息对象持久化
        channel.basicPublish(QUEUE_EXCHANGE_TOPIC, "user.xx", MessageProperties.PERSISTENT_TEXT_PLAIN, message.getBytes());
        System.out.println("消息发送完毕！");


    }

}
